package com.foreknow.demo14;

import com.mysql.cj.protocol.Resultset;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class JdbcDemo {
    public static void main(String[] args) {
        //        2、com.mysql.jdbc.Driver 更换为 com.mysql.cj.jdbc.Driver。
        try {
            //1. 加载驱动
            Class.forName("com.mysql.cj.jdbc.Driver");
            //获取连接Connection    -- url中的地址不变
            Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/base23?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC","root","123456");
            //3. 获取Statement接口：作用是为了调用增、删、改、查的方法。
            Statement statement = conn.createStatement();//创建一个Statement对象，用于将SQL语句发送到数据库。
            //4. 执行对数据库的操作(insert update select delete)
            //ResultSet表示结果集：主要的作用是保存从数据库中查询到的数据(一条数据就是一个对象)
            ResultSet rs = statement.executeQuery("SELECT * FROM user"); //执行给定的SQL语句，该语句返回单个 ResultSet对象。
            List<User> list = new ArrayList<>();
            while (rs.next()) {
                //获取到当前行数据(第一列，第二列.....第n列)
                int id = rs.getInt("id"); //获取到第一列的值
                String username = rs.getString("username");//获取到第二列的值
                String password = rs.getString("password");//获取到第三列的值
                //System.out.println(id+"---"+username+"---"+password);
                User user = new User();
                user.setId(id);
                user.setUsername(username);
                user.setPassword(password);
                //将对象保存到集合中
                list.add(user);
            }
            //遍历集合
            for (User user:list){
                System.out.println(user.getUsername());
            }

            System.out.println("_____________________insert delete update___________");
            int isRigth = statement.executeUpdate("INSERT INTO user(username,password) VALUES('testss','12345')");
            if(isRigth==1){
                System.out.println("dml success......");
            }else {
                System.out.println("dml error");
            }

            System.out.println("_____________________DELETE___________________________");
            int updat = statement.executeUpdate("DELETE FROM user WHERE id=4;");
            if (updat == 1){
                System.out.println("dml success....");
            }else{
                System.out.println("dml error.....");
            }

            System.out.println("_____________________INSERT INTO___________________________");
            int inset = statement.executeUpdate("INSERT INTO user(username,password) VALUES('yyyyyy','111111');");
            if (inset == 1){
                System.out.println("dml success....");
            }else{
                System.out.println("dml error.....");
            }


//            rs.close();
//            statement.close();
//            conn.close();

        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
